In a NAND flash memory, information is stored according to the amount of electric charge accumulated in a floating gate of a memory cell. The stored information is read by applying a read voltage to the memory cell. However, there are cases where the distribution of the amount of electric, charge accumulated in the floating gate of a memory cell changes from its initial state. In accordance with such a change, an optimal read voltage for which the number of reading errors is small changes.